﻿using Ewell.Interface.Common.Model.Constant;
using Ewell.Interface.Common.Model.GateWay.Dto.Oauth;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ewell.Interface.Common.Model.GateWay.GateWayUriInfo
{
    public class HisOauthService : GateWayUri
    {
        public override string url => "dubbo/cc.ewell.his.oauth.service.inter.dubbo.HisOauthService";
        /// <summary>
        /// 根据条件查询三方支付信息
        /// </summary>
        public GateWayMethod queryOauthPayOrderListByExample => new QueryOauthPayOrderListByExample(url);
        /// <summary>
        /// 生成三方支付信息
        /// </summary>
        public GateWayMethod addOauthPayOrder => new AddOauthPayOrder(url);
        /// <summary>
        /// 提交三方支付信息
        /// </summary>
        public GateWayMethod commitOauthPayOrder => new CommitOauthPayOrder(url);
        /// <summary>
        /// 更新三方支付失败信息
        /// </summary>
        public GateWayMethod updateOauthPayOrderFailedInfoById => new UpdateOauthPayOrderFailedInfoById(url);
        /// <summary>
        /// 生成三方退费信息
        /// </summary>
        public GateWayMethod addOauthRefundOrder => new AddOauthRefundOrder(url);
        /// <summary>
        /// 提交三方退费信息
        /// </summary>
        public GateWayMethod commitOauthRefundOrder => new CommitOauthRefundOrder(url);
        /// <summary>
        /// 更新三方退费失败信息
        /// </summary>
        public GateWayMethod updateOauthRefundOrderFailedInfoById => new UpdateOauthRefundOrderFailedInfoById(url);
    }

    public class QueryOauthPayOrderListByExample : GateWayMethod
    {
        public QueryOauthPayOrderListByExample(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "queryOauthPayOrderListByExample";

        public override string paramClass => "cc.ewell.his.oauth.upon.payandrefund.QueryOauthPayOrderRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(QueryOauthPayOrderListByExampleReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "根据条件查询三方支付信息";
    }

    public class AddOauthPayOrder : GateWayMethod
    {
        public AddOauthPayOrder(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "addOauthPayOrder";

        public override string paramClass => "cc.ewell.his.oauth.upon.payandrefund.AddOauthPayOrderRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(AddOauthPayOrderReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "生成三方支付信息";
    }

    public class CommitOauthPayOrder : GateWayMethod
    {
        public CommitOauthPayOrder(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "commitOauthPayOrder";

        public override string paramClass => "cc.ewell.his.oauth.upon.payandrefund.CommitOauthPayOrderRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(CommitOauthPayOrderReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "提交三方支付信息";
    }

    public class UpdateOauthPayOrderFailedInfoById : GateWayMethod
    {
        public UpdateOauthPayOrderFailedInfoById(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "updateOauthPayOrderFailedInfoById";

        public override string paramClass => "cc.ewell.his.oauth.upon.payandrefund.UpdateOauthOrderFailedInfoRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(UpdateOauthPayOrderFailedInfoByIdReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "更新三方支付失败信息";
    }

    public class AddOauthRefundOrder : GateWayMethod
    {
        public AddOauthRefundOrder(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "addOauthRefundOrder";

        public override string paramClass => "cc.ewell.his.oauth.upon.payandrefund.AddOauthRefundOrderRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(AddOauthRefundOrderReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "生成三方退费信息";
    }

    public class CommitOauthRefundOrder : GateWayMethod
    {
        public CommitOauthRefundOrder(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "commitOauthRefundOrder";

        public override string paramClass => "cc.ewell.his.oauth.upon.payandrefund.CommitOauthRefundOrderRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(CommitOauthRefundOrderReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "提交三方退费信息";
    }

    public class UpdateOauthRefundOrderFailedInfoById : GateWayMethod
    {
        public UpdateOauthRefundOrderFailedInfoById(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "updateOauthRefundOrderFailedInfoById";

        public override string paramClass => "cc.ewell.his.oauth.upon.payandrefund.UpdateOauthOrderFailedInfoRequest";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(UpdateOauthRefundOrderFailedInfoByIdReq);

        public override Type responseParamType => typeof(object);

        public override string desc => "更新三方退费失败信息";
    }
}
